1. Field of the Invention
The present invention relates to a method for operating a memory device, and more particularly, to a method for programming a non-volatile memory.
2. Description of Related Art
Since programmable non-volatile memory can be used to improve flexibility of circuit design and has reduced weight and capability to retain data even when the power is down, it is widely applied in related fields. In conventional methods for programming programmable non-volatile memory, fixed reference levels are always used to distinguish the data storage states (referred to as “storage state” hereinafter) of the memory cells, and the reference level may be a reference level of current or threshold voltage VT.
For example, a one-time programmable (OTP) memory capable of storing one bit per cell is programmed using one fixed reference level, while a multi-level cell (MLC) memory or a multi-time programmable (MTP) memory is programmed using multiple fixed reference levels, as shown in FIGS. 1–2. Briefly, FIG. 1(A) shows an ideal relationship between multiple fixed reference levels and the cell level distributions of all storage states in a MLC memory of two bits per cell. FIG. 2(A) shows ideal relationships between multiple fixed reference levels and the cell level distributions of both storage states in a MTP memory after the MTP memory is programmed first time and second time, respectively.
However, using fixed reference levels tends to restrict the programming speed of a MLC or MTP non-volatile memory. This is because the degree of pumping charges into a memory cell is difficult to stably control when the programming speed is increased, so that over-programming easily occurs to broaden the level distribution of memory cells. Therefore, as shown in FIG. 1(B) or 2(B), the inter-state window (represented by “w”) between two storage states of the MLC or MTP memory becomes narrower, so that reading errors are easily caused.